// 导入安装好的 uni-app-fetch 模块
import { createUniFetch } from 'uni-app-fetch'
import {useUserStore} from '@/stores/user'

const tabBarPages = [
	'pages/task/index',
	'pages/message/index',
	'pages/my/index'
]

// 配置符合自身业务的请求对象
export const uniFetch = createUniFetch({
	loading: { title: '正在加载...' },
	baseURL: 'https://slwl-api.itheima.net',
	intercept: {
		// 请求拦截器
		request(options) {
			// 获取store中的数据
			const userStore = useUserStore()
			// 全局公共头信息
			const defaultHeader = {
				Authorization:userStore.token
			}
			// 自定义头信息（token）
			options.header = Object.assign({},defaultHeader,options.header)
			
      return options
		},
		// 响应拦截器
		response({statusCode,data}) {
			if(statusCode === 401) {
				
				const pageStack = getCurrentPages()
				const currentPage = pageStack[pageStack.length -1]
				const redirectURL = currentPage.route
				const routeType = tabBarPages.includes(redirectURL)?'switchTab':'redirectTo'
				
				// 跳转到登录页面
				uni.redirectTo({
					url:`/pages/login/index?redirectURL=/${redirectURL}&routeType=${routeType}`
				})
			}
		return data
		},
	},
})